//package cn.texous.demo.dsj.kafka2parquet;
//
//import org.apache.commons.cli.CommandLine;
//import org.apache.commons.cli.CommandLineParser;
//import org.apache.commons.cli.Options;
//import org.apache.commons.cli.ParseException;
//import org.apache.commons.cli.PosixParser;
//import org.apache.spark.streaming.Duration;
//
///***/
//public class Flags {
//    private static Flags THE_INSTANCE = new Flags();
//
//    private Duration windowLength;
//    private Duration slideInterval;
//    private String kafka_broker;
//    private String kafka_topic;
//    private String parquet_file;
//
//    private boolean initialized = false;
//
//    private Flags() {
//    }
//
//    public Duration getWindowLength() {
//        return windowLength;
//    }
//
//    public Duration getSlideInterval() {
//        return slideInterval;
//    }
//
//    public String getKafka_broker() {
//        return kafka_broker;
//    }
//
//    public String getKafka_topic() {
//        return kafka_topic;
//    }
//
//    public String getParquetFile() {
//        return parquet_file;
//    }
//
//    /***/
//    public static Flags getInstance() {
//        if (!THE_INSTANCE.initialized) {
//            throw new RuntimeException("Flags have not been initalized");
//        }
//        return THE_INSTANCE;
//    }
//
//    /***/
//    public static void setFromCommandLineArgs(Options options, String[] args) {
//        CommandLineParser parser = new PosixParser();
//        try {
//            CommandLine cl = parser.parse(options, args);
//            // 参数默认值
//            THE_INSTANCE.windowLength = new Duration(
//                    Integer.parseInt(cl.getOptionValue(AppMain.WINDOW_LENGTH, "30")) * 1000);
//            THE_INSTANCE.slideInterval = new Duration(
//                    Integer.parseInt(cl.getOptionValue(AppMain.SLIDE_INTERVAL, "5")) * 1000);
//            THE_INSTANCE.kafka_broker = cl.getOptionValue(AppMain.KAFKA_BROKER, "kafka:9092");
//            THE_INSTANCE.kafka_topic = cl.getOptionValue(AppMain.KAFKA_TOPIC, "apache");
//            THE_INSTANCE.parquet_file = cl.getOptionValue(AppMain.PARQUET_FILE, "/user/spark/");
//            THE_INSTANCE.initialized = true;
//        } catch (ParseException e) {
//            THE_INSTANCE.initialized = false;
//            System.err.println("Parsing failed.  Reason: " + e.getMessage());
//        }
//    }
//}
